package com.xuhuan.example.example028;

/**
 * @author: huan.xu
 * @create: 2023/11/13 13:27
 * @description:
 **/
public class Example028 {

    public static void main(String[] args) {
        System.out.println("-----------菱形--------------");
        printDiamond(7);
        System.out.println("---------空心菱形------------");
        printHollowDiamond(7);
    }

    /**
     * 输出空心的菱形
     */
    public static void printHollowDiamond(int num) {
        if (num % 2 == 0) {
            num++;
        }
        //输出菱形上部分
        for (int i = 0; i <= num / 2; i++) {
            for (int j = 0; j < num; j++) {
                if ((j >= num / 2) && (j == num / 2 + i)) {
                    System.out.print("*\t");
                } else if ((j <= num / 2) && (j == num / 2 - i)) {
                    System.out.print("*\t");
                } else {
                    System.out.print("\t");
                }
            }
            System.out.println();
        }
        //输出菱形下半部分
        for (int i = num / 2 + 1; i < num; i++) {
            for (int j = 0; j < num; j++) {
                if ((j >= num / 2) && (j == num - i + num / 2 - 1)) {
                    System.out.print("*\t");
                } else if ((j <= num / 2) && (j == i - num / 2)) {
                    System.out.print("*\t");
                } else {
                    System.out.print("\t");
                }
            }
            System.out.println();
        }
    }

    /**
     * 输出菱形
     */
    public static void printDiamond(int num) {
        if (num % 2 == 0) {
            num++;
        }
        //输出菱形上部分
        for (int i = 0; i <= num / 2; i++) {
            for (int j = 0; j < num; j++) {
                if ((j >= num / 2) && (j <= num / 2 + i)) {
                    System.out.print("*\t");
                } else if ((j <= num / 2) && (j >= num / 2 - i)) {
                    System.out.print("*\t");
                } else {
                    System.out.print("\t");
                }
            }
            System.out.println();
        }

        //输出菱形下半部分
        for (int i = num / 2 + 1; i < num; i++) {
            for (int j = 0; j < num; j++) {
                if ((j >= num / 2) && (j <= num - i + num / 2 - 1)) {
                    System.out.print("*\t");
                } else if ((j <= num / 2) && (j >= i - num / 2)) {
                    System.out.print("*\t");
                } else {
                    System.out.print("\t");
                }
            }
            System.out.println();
        }

    }
}
